package com.groupbuying.common.baseutils.baseframework4plugins.basecrud.dao;

import com.groupbuying.common.baseutils.baseframework4plugins.basecrud.vo.BaseModel;
import com.groupbuying.common.baseutils.baseframework4plugins.basecrud.web.vo.Pager;

import java.util.List;

/**
 * @anthor zmlmagic
 * @date 2018/12/26 5:47 PM
 * @company 蒙泰互联网公司
 * @des 备注说明
 **/

public interface BaseDAO<M extends BaseModel, QM extends BaseModel> {
    void batchCreate(List<M> var1);

    void batchUpdate(List<M> var1);

    M getModel();

    QM getQueryModel();

    String create(M var1);

    void batchCreateOrUpdate(List<M> var1);

    void update(M var1);

    void updateCell(M var1, String var2);

    void delete(M var1);

    void delete(String var1);

    void deletes(List<String> var1);

    M getByUuid(String var1);

    List<M> getAll();

    Pager getAll(Pager var1);

    List<M> getByCondition(QM var1);

    Pager getByCondition(QM var1, Pager var2);

    default Pager getByConditionStateless(QM qm, Pager pager) {
        return pager;
    }

    List<M> getByUuids(List<String> var1);

    int getCount(QM var1);

    Pager getUuidsByCondition(QM var1, Pager var2);

    void setDataDeleteFlag(String var1, int var2);
}

